package com.qf.team2.netdisc.common.exception;

/**
 * 自定义业务异常类
 * 创建时必须传入异常提示信息
 *
 * @author Simon_Wong
 * @date 2021/05/20
 * @since 2021/5/20 10:35
 */
public class BusinessException extends RuntimeException {

    /**
     * 有参构造方法
     * 对于一般的业务异常，必须进行处理，严禁挂起，并且不需要生成栈追踪信息
     * 需要挂起或栈追踪信息进行调试时，请使用{@link BusinessException(String, Throwable, boolean, boolean)}
     *
     * @param message 异常提示语句
     * @param cause   导致异常的原因，原因不明确时可以为null
     */
    public BusinessException(String message, Throwable cause) {
        super(message, cause, false, false);
    }

    /**
     * 有参构造方法
     *
     * @param message 异常提示语句
     */
    public BusinessException(String message) {
        super(message, null, false, false);
    }

    /**
     * 有参构造方法
     * 仅调试时使用
     *
     * @param message            消息
     * @param cause              导致异常的原因，原因不明确时可以为null
     * @param enableSuppression  是否可被挂起
     * @param writableStackTrace 是否生成栈追踪信息
     */
    public BusinessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
        super(message, cause, enableSuppression, writableStackTrace);
    }
}
